package com.zjk.racing

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.os.Message
import android.widget.FrameLayout
import com.zhongjinkang.basegame.BaseGameActivity
import com.zhongjinkang.basegame.ConfigUtils
import com.zhongjinkang.basegame.WarmSoundUnit
import com.zhongjinkang.basegame.game.OnGameClickListener

class MainActivity : BaseGameActivity() {

    private lateinit var testGame:TestGame
    private lateinit var frameLayout: FrameLayout
    //鼠标位置  //mouse_Mode_left 左屏，
    private val mouseLocal = ConfigUtils.mouse_Mode_left
    override fun getLayoutId(): Int {
      return R.layout.activity_game_public
    }

    /**
     * p0  训练时间
     * p1  训练难度
     * p2  训练模式
     */
    override fun initData(p0: Int, p1: Int, p2: Int) {
        //设置用眼模式 和显示模式，3D模式一般都是用双眼。
        sendEyeModeAnd3DMode(ConfigUtils.Eye_Mode_all, ConfigUtils.show_mode_3d);
        //设置鼠标在左边屏或者又边屏
        sendMouseLocation(mouseLocal);

        testGame= TestGame(this, object :OnGameClickListener{
            /**
             * 点击开始训练的时候的回调
             */
            override fun onGameStart() {
                //设置开始训练的时间。服务器要的
                setStartTime(System.currentTimeMillis())
                //这是设置训练时间
                testGame.startGame(p0)
                //播放背景音乐。  具体背景音乐/sdcard/GameResource/music
                WarmSoundUnit.getInstance().playerBg("bg_12.mp3");
            }

            override fun onEnd(p0: Int, p1: Int) {
                //设置结束时间。服务器要的
                setEndTime(System.currentTimeMillis());
                //这里播放胜利或失败的音乐
                if (p0 > p1) {
                    WarmSoundUnit.getInstance().playMusic("finish_success.mp3");
                } else {
                    WarmSoundUnit.getInstance().playMusic("finish_error.mp3");

                }
                //这里停止音乐
                WarmSoundUnit.getInstance().stopBg();
            }

            override fun onScore() {
                resultScore++;
                WarmSoundUnit.getInstance().playMusic("ok_ballon_music.mp3");
            }

            override fun onError() {
                resultError++;
                WarmSoundUnit.getInstance().playMusic("error_05.mp3");
            }

            override fun onFinish() {
                //注销广播
                unRegisterFloatReceiver();
                //停止音乐
                WarmSoundUnit.getInstance().stopBg();
                //掉退出命令
                onMyFinish();
            }

            override fun onTTs(p0: String?) {
                sendTTsContent(p0);
            }

            override fun onOpenSetting() {
                sendOpenSetting();
            }

            override fun onClickPause() {
            }

            override fun onContinue() {
            }

            /**
             * 特殊接口，自己定义
             */
            override fun onSpecial(p0: Int) {
            }
        });
        frameLayout.addView(testGame)
    }

    override fun initView() {
        frameLayout=findViewById(R.id.fl);
    }

    override fun handleMessage(p0: Message?) {
    }

    override fun onClickBack() {
    }

    /**
     * 关闭侧边弹窗必须要把鼠标的位子恢复到一开始设置的地方
     */
    override fun onCloseDialog() {
        super.onCloseDialog()
        sendMouseLocation(mouseLocal)
    }
}